//************************************************************
//    > File Name: strstr.cpp
//    > Author: davis
//    > Mail:  
//    > Created Time: 2017年01月10日 13:51:58
//***********************************************************
//lintcode #13
#include<bits/stdc++.h>
using namespace std;
int strStr(const char *source,const char *target){
	if(target!=nullptr && strlen(target)==0) return 0; 
	if(source!=nullptr && target!=nullptr){
		for(int i=0;i<strlen(source)-strlen(target)+1;++i){
			for(int j=0,k=i;j<strlen(target)+1;++j){
				if(source[k++]!=target[j]) break;
				if(k==(i+strlen(target)) return i;
			}
		}
	}
	return -1;
}

int strStr2(const char *source,const char *target){
	if(source !=nullptr && target != nullptr){
		const string src=source;
		const string tgt=target;
		for(int i=0;i<src.length()-tgt.length()+1;++i){
			if(src.substr(i,tgt.length())==tgt)
				return i;
		}

	}
	return -1;
}

int main(){
	const char *s="abcde";
	const char *b="e";
	int r1=strStr(s,b);
	int r2=strStr2(s,b);
	cout<<r1<<"  "<<r2<<endl;
}

